{
  "title":"maxlength attribute for input and textarea elements",
  "description":"Declares an upper bound on the number of characters the user can input. Normally the UI ignores attempts by the user to type in additional characters beyond this limit.",
  "spec":"https://html.spec.whatwg.org/multipage/forms.html#attr-input-maxlength",
  "status":"ls",
  "links":[
    {
      "url":"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-maxlength",
      "title":"MDN Web Docs - attribute maxlength"
    }
  ],
  "bugs":[
    {
      "description":"In Opera 12.1 & below `ValidityState.tooLong` is true when the input's initial value exceeds the maxlength. Per the spec, it should instead be false until the user edits the value."
    }
  ],
  "categories":[
    "DOM",
    "HTML5",
    "JS API"
  ],
  "stats":{
    "ie":{
      "5.5":"u",
      "6":"a #1 #2 #3",
      "7":"a #1 #2 #3",
      "8":"a #1 #2 #3",
      "9":"a #1 #2 #3",
      "10":"y",
      "11":"y"
    },
    "edge":{
      "12":"y #4",
      "13":"y #4",
      "14":"y #4",
      "15":"y #4",
      "16":"y #4",
      "17":"y #4",
      "18":"y #4",
      "79":"y",
      "80":"y",
      "81":"y",
      "83":"y",
      "84":"y",
      "85":"y",
      "86":"y",
      "87":"y",
      "88":"y",
      "89":"y",
      "90":"y",
      "91":"y",
      "92":"y",
      "93":"y",
      "94":"y",
      "95":"y",
      "96":"y"
    },
    "firefox":{
      "2":"a #1 #2 #3",
      "3":"a #1 #2 #3",
      "3.5":"a #1 #2 #3",
      "3.6":"a #1 #2 #3",
      "4":"y #4",
      "5":"y #4",
      "6":"y #4",
      "7":"y #4",
      "8":"y #4",
      "9":"y #4",
      "10":"y #4",
      "11":"y #4",
      "12":"y #4",
      "13":"y #4",
      "14":"y #4",
      "15":"y #4",
      "16":"y #4",
      "17":"y #4",
      "18":"y #4",
      "19":"y #4",
      "20":"y #4",
      "21":"y #4",
      "22":"y #4",
      "23":"y #4",
      "24":"y #4",
      "25":"y #4",
      "26":"y #4",
      "27":"y #4",
      "28":"y #4",
      "29":"y #4",
      "30":"y #4",
      "31":"y #4",
      "32":"y #4",
      "33":"y #4",
      "34":"y #4",
      "35":"y #4",
      "36":"y #4",
      "37":"y #4",
      "38":"y #4",
      "39":"y #4",
      "40":"y #4",
      "41":"y #4",
      "42":"y #4",
      "43":"y #4",
      "44":"y #4",
      "45":"y #4",
      "46":"y #4",
      "47":"y #4",
      "48":"y #4",
      "49":"y #4",
      "50":"y #4",
      "51":"y",
      "52":"y",
      "53":"y",
      "54":"y",
      "55":"y",
      "56":"y",
      "57":"y",
      "58":"y",
      "59":"y",
      "60":"y",
      "61":"y",
      "62":"y",
      "63":"y",
      "64":"y",
      "65":"y",
      "66":"y",
      "67":"y",
      "68":"y",
      "69":"y",
      "70":"y",
      "71":"y",
      "72":"y",
      "73":"y",
      "74":"y",
      "75":"y",
      "76":"y",
      "77":"y",
      "78":"y",
      "79":"y",
      "80":"y",
      "81":"y",
      "82":"y",
      "83":"y",
      "84":"y",
      "85":"y",
      "86":"y",
      "87":"y",
      "88":"y",
      "89":"y",
      "90":"y",
      "91":"y",
      "92":"y",
      "93":"y",
      "94":"y",
      "95":"y",
      "96":"y",
      "97":"y"
    },
    "chrome":{
      "4":"y",
      "5":"y",
      "6":"y",
      "7":"y",
      "8":"y",
      "9":"y",
      "10":"y",
      "11":"y",
      "12":"y",
      "13":"y",
      "14":"y",
      "15":"y",
      "16":"y",
      "17":"y",
      "18":"y",
      "19":"y",
      "20":"y",
      "21":"y",
      "22":"y",
      "23":"y",
      "24":"y",
      "25":"y",
      "26":"y",
      "27":"y",
      "28":"y",
      "29":"y",
      "30":"y",
      "31":"y",
      "32":"y",
      "33":"y",
      "34":"y",
      "35":"y",
      "36":"y",
      "37":"y",
      "38":"y",
      "39":"y",
      "40":"y",
      "41":"y",
      "42":"y",
      "43":"y",
      "44":"y",
      "45":"y",
      "46":"y",
      "47":"y",
      "48":"y",
      "49":"y",
      "50":"y",
      "51":"y",
      "52":"y",
      "53":"y",
      "54":"y",
      "55":"y",
      "56":"y",
      "57":"y",
      "58":"y",
      "59":"y",
      "60":"y",
      "61":"y",
      "62":"y",
      "63":"y",
      "64":"y",
      "65":"y",
      "66":"y",
      "67":"y",
      "68":"y",
      "69":"y",
      "70":"y",
      "71":"y",
      "72":"y",
      "73":"y",
      "74":"y",
      "75":"y",
      "76":"y",
      "77":"y",
      "78":"y",
      "79":"y",
      "80":"y",
      "81":"y",
      "83":"y",
      "84":"y",
      "85":"y",
      "86":"y",
      "87":"y",
      "88":"y",
      "89":"y",
      "90":"y",
      "91":"y",
      "92":"y",
      "93":"y",
      "94":"y",
      "95":"y",
      "96":"y",
      "97":"y",
      "98":"y",
      "99":"y"
    },
    "safari":{
      "3.1":"u",
      "3.2":"a #1 #2 #3",
      "4":"a #1 #2 #3",
      "5":"u",
      "5.1":"y",
      "6":"y",
      "6.1":"y",
      "7":"y",
      "7.1":"y",
      "8":"y",
      "9":"y",
      "9.1":"y",
      "10":"y",
      "10.1":"y",
      "11":"y",
      "11.1":"y",
      "12":"y",
      "12.1":"y",
      "13":"y",
      "13.1":"y",
      "14":"y",
      "14.1":"y",
      "15":"y",
      "15.1":"y",
      "TP":"y"
    },
    "opera":{
      "9":"u",
      "9.5-9.6":"a #1",
      "10.0-10.1":"a #1",
      "10.5":"a #1",
      "10.6":"a #1",
      "11":"a #1",
      "11.1":"a #1",
      "11.5":"a #1",
      "11.6":"a #1",
      "12":"a #1",
      "12.1":"a #1",
      "15":"y",
      "16":"y",
      "17":"y",
      "18":"y",
      "19":"y",
      "20":"y",
      "21":"y",
      "22":"y",
      "23":"y",
      "24":"y",
      "25":"y",
      "26":"y",
      "27":"y",
      "28":"y",
      "29":"y",
      "30":"y",
      "31":"y",
      "32":"y",
      "33":"y",
      "34":"y",
      "35":"y",
      "36":"y",
      "37":"y",
      "38":"y",
      "39":"y",
      "40":"y",
      "41":"y",
      "42":"y",
      "43":"y",
      "44":"y",
      "45":"y",
      "46":"y",
      "47":"y",
      "48":"y",
      "49":"y",
      "50":"y",
      "51":"y",
      "52":"y",
      "53":"y",
      "54":"y",
      "55":"y",
      "56":"y",
      "57":"y",
      "58":"y",
      "60":"y",
      "62":"y",
      "63":"y",
      "64":"y",
      "65":"y",
      "66":"y",
      "67":"y",
      "68":"y",
      "69":"y",
      "70":"y",
      "71":"y",
      "72":"y",
      "73":"y",
      "74":"y",
      "75":"y",
      "76":"y",
      "77":"y",
      "78":"y",
      "79":"y",
      "80":"y",
      "81":"y",
      "82":"y"
    },
    "ios_saf":{
      "3.2":"u",
      "4.0-4.1":"y",
      "4.2-4.3":"y",
      "5.0-5.1":"y",
      "6.0-6.1":"y",
      "7.0-7.1":"y",
      "8":"a #5",
      "8.1-8.4":"a #5",
      "9.0-9.2":"y",
      "9.3":"y",
      "10.0-10.2":"y",
      "10.3":"y",
      "11.0-11.2":"y",
      "11.3-11.4":"y",
      "12.0-12.1":"y",
      "12.2-12.5":"y",
      "13.0-13.1":"y",
      "13.2":"y",
      "13.3":"y",
      "13.4-13.7":"y",
      "14.0-14.4":"y",
      "14.5-14.8":"y",
      "15.0-15.1":"y"
    },
    "op_mini":{
      "all":"a #1"
    },
    "android":{
      "2.1":"u",
      "2.2":"u",
      "2.3":"y",
      "3":"y",
      "4":"y",
      "4.1":"y",
      "4.2-4.3":"y",
      "4.4":"y",
      "4.4.3-4.4.4":"y",
      "96":"y #6"
    },
    "bb":{
      "7":"y",
      "10":"y"
    },
    "op_mob":{
      "10":"a #1",
      "11":"a #1",
      "11.1":"a #1",
      "11.5":"a #1",
      "12":"a #1",
      "12.1":"a #1",
      "64":"y #6"
    },
    "and_chr":{
      "96":"y #6"
    },
    "and_ff":{
      "94":"y #6"
    },
    "ie_mob":{
      "10":"y",
      "11":"y"
    },
    "and_uc":{
      "12.12":"y"
    },
    "samsung":{
      "4":"y #6",
      "5.0-5.4":"y #6",
      "6.2-6.4":"y #6",
      "7.2-7.4":"y #6",
      "8.2":"y #6",
      "9.2":"y #6",
      "10.1":"y #6",
      "11.1-11.2":"y #6",
      "12.0":"y #6",
      "13.0":"y #6",
      "14.0":"y #6",
      "15.0":"y #6"
    },
    "and_qq":{
      "10.4":"y"
    },
    "baidu":{
      "7.12":"y"
    },
    "kaios":{
      "2.5":"y #4"
    }
  },
  "notes":"",
  "notes_by_num":{
    "1":"`<textarea>`'s' UI does not prevent the user from typing additional characters beyond the `maxlength` limit.",
    "2":"Does not support the `HTMLTextAreaElement.maxLength` DOM property.",
    "3":"Does not support [`ValidityState.tooLong`](https://developer.mozilla.org/en-US/docs/Web/API/ValidityState/tooLong). In some cases, this is because `.validity` is not supported in the first place.",
    "4":"Does not support `ValidityState.tooLong` correctly in the (unlikely) case of the value being initially set too long, then changed by the user to a still incorrect state. See [Firefox bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1203844) and [MS Edge bug](https://web.archive.org/web/20171210191653/https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/4678527/).",
    "5":"`<input>`'s UI does not prevent the user from typing additional characters beyond the `maxlength` limit between two existing characters of the string.",
    "6":"Allows text beyond maxlength to be entered at first, but removes all characters past the maxlength when focus is lost."
  },
  "usage_perc_y":98.5,
  "usage_perc_a":1.33,
  "ucprefix":false,
  "parent":"form-validation",
  "keywords":"maximum,length,input,textarea,too,long,validity,state",
  "ie_id":"",
  "chrome_id":"",
  "firefox_id":"",
  "webkit_id":"",
  "shown":true
}
